﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
using System.Web.Configuration;

/// <summary>
/// Classe de Estados.
/// </summary>
public class Estados : Banco
{
    /// <summary>
    /// Existem cinco estados, que só podem ser alterados pelo nome.
    /// Estados padrão são.
    /// 1.Inicial
    /// 2.Andamento
    /// 3.Comprando
    /// 4.Esperando Mercadorias
    /// 5.Finalizado
    /// </summary>
    public Estados()
    {
    }
    /// <summary>
    /// Verifica se todos estados existem.
    /// </summary>
    /// <returns>True se estiver correto.</returns>
    public bool VerificarEstados()
    {
        string sql = "SELECT * FROM Estados";

        bool resultado = true;

        MySqlConnection conection = new MySqlConnection(Conexao);
        try
        {
            MySqlCommand comando = new MySqlCommand(sql, conection);

            MySqlDataReader dtreader;
            conection.Open();
            dtreader = comando.ExecuteReader();

            int cont = 1;

            if (dtreader.HasRows)
            {
                while (dtreader.Read())
                {
                    cont++;
                }
            }
            else
                resultado = false;
            if (cont != 5)
                resultado = false;

        }
        catch
        {
            resultado = false;
        }
        conection.Close();
        return resultado;
    }
    /// <summary>
    /// Insere estados iniciais.
    /// 1.Inicial
    /// 2.Andamento
    /// 3.Comprando
    /// 4.Esperando Mercadorias
    /// 5.Finalizado
    /// </summary>
    /// </summary>
    public bool InserirEstadosIniciais()
    {
        if (VerificarEstados())
        {
            string Estado = "";
            string sql;
            try
            {
                for (int i = 1; i <= 5; i++)
                {
                    if (i == 1)
                        Estado = "Inicial";

                    if (i == 2)
                        Estado = "Andamento";

                    if (i == 3)
                        Estado = "Comprando";

                    if (i == 4)
                        Estado = "Esperando Mercadorias";

                    if (i == 5)
                        Estado = "Finalizado";


                    sql = "INSERT INTO estados (Codigo, Estado) VALUES (" + i + ", '" + Estado + "')";
                    Comando(sql);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    /// <summary>
    /// Reseta os nomes de estado ao inicial.
    /// 1.Inicial
    /// 2.Andamento
    /// 3.Comprando
    /// 4.Esperando Mercadorias
    /// 5.Finalizado
    /// </summary>
    public bool ResetarEstados()
    {
        if (!VerificarEstados())
        {
            string Estado = "";
            string sql;
            try
            {
                for (int i = 1; i <= 5; i++)
                {
                    if (i == 1)
                        Estado = "Inicial";

                    if (i == 2)
                        Estado = "Andamento";

                    if (i == 3)
                        Estado = "Comprando";

                    if (i == 4)
                        Estado = "Esperando Mercadorias";

                    if (i == 5)
                        Estado = "Finalizado";


                    sql = "UPDATE estados SET Estado = '" + Estado + "' WHERE (estados.Codigo = " + i + ")";
                    Comando(sql);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    /// Popula uma DropDownList com materiais cadastrados no sistema.
    /// </summary>
    /// <param name="ddl">DropDownList para ser populada.</param>
    /// <returns></returns>
    public bool PopularDropDown(DropDownList ddl)
    {
        return Comando("SELECT Codigo, Estado FROM Estados ORDER BY Estado");
    }
}